iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

前言

之前我們介紹過CNN中的始祖:LeNet-5與AlexNet(https://ithelp.ithome.com.tw/articles/10330192),接下來讓我們按照出現的順序繼續往下介紹一些經典的CNN架構吧!首先當然就是知名的VGG架構!

先備知識

  1. 對捲積運算有基礎的認識(可以回顧這篇的內容:https://ithelp.ithome.com.tw/articles/10323076 )
  2. 了解甚麼是捲積神經網路(Convolutional Neural Network)(可以回顧這篇的內容:https://ithelp.ithome.com.tw/articles/10323077)

看完今天的內容你可能會知道......

  1. VGG架構是甚麼
  2. VGG架構如何訓練
  3. VGG架構有哪些特點

一、VGG的誕生

  • 論文:https://arxiv.org/pdf/1409.1556.pdf
  • 在LeNet-5與AlexNet之後,VGG架構於2014年被牛津大學的視覺小組所提出,總共有以下幾種不同的變形:
    https://ithelp.ithome.com.tw/upload/images/20231001/20163299Y2TSUm5ott.png
  • 從架構圖可以看出來VGG整體架構與AlexNet相似,但是更深(更多層)也更多參數,雖然這樣的模型對現在來說不算甚麼,但是十層以上的層數對當時的環境來說算是非常深的模型了。依照之前提過的過擬合與欠擬合的概念(https://ithelp.ithome.com.tw/articles/10329492),可以想像這樣的模型在大型資料集或是較為複雜的任務上應該會有不錯的表現,事實也是如此,VGG在當年的的ImageNet資料集競賽上取得第二名的成績。
  • 值得注意的是,因為VGG在當時算是相對大的模型,所以在訓練上較為麻煩,除了訓練慢以外,也不太好收斂,當時使用了一個特殊的手法處理這樣的問題:預訓練模型。也就是先訓練好上圖中的A架構,接著把訓練好的參數當作預設參數來訓練其他較多層的模型(C或是E等等)。

二、VGG架構的特色

  • VGG算是現在常用的CNN架構中其中一員,在架構上沒什麼特殊的地方,不過有幾點小細節可以討論的:

    1. 用更少的參數看得更多--小核取代大核

    • 早期的CNN架構,為了能夠提取到有用的特徵,會使用比較大的捲積核,例如AlexNet中5x5大小的捲積核,對於一個C個通道的輸入圖片來說,這樣的捲積核需要的總參數量是(5x5xC+1)=25C+1,而在空間上可以「看到」的圖片大小就是5x5的區域。
    • 在VGG中,作者指出可以用多個小尺寸的核取代一個大尺寸的核,在可以「看到」的區域差不多大小的情況下,多個小尺寸的核可以有較少的參數量,同時也可以搭配使用更多的激勵函數,提升模型的非線性,以促進模型表現。舉例來說,2個3x3大小的捲積核可以取代一個5x5大小的捲積核,這樣參數量只需要(3x3xC+1)x2=18C+2

    2. 空間與通道上任意調整--1x1捲積核

    • 另外一種減少參數量的做法是使用1x1的捲積核,並且1x1的捲積核還可以在保持空間大小不變的情況下重新整合一次空間與通道的資訊,還可以加上激勵函數增加一些非線性。
    • 為甚麼1x1捲積核可以減少參數量呢?剛剛我們提過,1x1捲積核不會改變圖片大小,所以關鍵在於通道數減少了。每個捲積層的輸出結果被稱為「特徵圖」,特徵圖的數量取決於該捲積層的捲積核個數,也就是當有N個捲積核時,輸出特徵圖會具有10個通道數。
    • 這種使用1x1捲積核整合資訊/減少參數量的操作也被稱為「瓶頸層」,因為我們經常在畫圖時,把每一層需要畫多寬取決於該層輸出的特徵圖的通道數量,所以通道數量越少就會越窄,在模型架構圖上看起來就會像是花瓶中突然向內凹的區塊,也就是所謂的「瓶頸」。

三、總結

  • 相較於LeNet-5和AlexNet,VGG的設計似乎相對樸實,這是因為大概從那時候開始,所有模型都設計得越深越廣,以求能得出更好的效果。然而我們一昧的把模型設計得很深很大的話,是不是會遇到某些問題?例如我們昨天討論過的梯度爆炸或梯度消失,如果這樣的話該怎麼處理呢?這個問題的答案可以在後續論文導讀的內容中看到,我們可以在架構設計上加入一點點魔法來避免這些問題。

上一篇
番外篇--AI學習的大麻煩--激勵函數(Activation Function)與梯度爆炸/梯度消失
下一篇
CNN經典論文實戰(二)--VGG
系列文
AI白話文運動系列之「A!給我那張Image!」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言